GameDataStorage

async get(key: string): ResultValue

获取存储库的内容,注意加 await!

注意:在存储库没有对应的数据时会返回 undefined!

基础示例:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置内容(详见下方 set 方法)
    await dataStorage.set("test", "test");
    // 获取内容
    var result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键无内容!");
    }
    // 删除内容(详见下方 remove 方法)
    await dataStorage.remove("test");
    result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键无内容!");
    }
}();

async getVersion(key: string, version: string): ResultValue

获取存储库的内容的备份,注意加 await!

注意:在存储库没有对应的数据时会返回 undefined!

基础示例 1:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置初始值
    await dataStorage.set("test", "test1");
    // 获取备份的数据
    var tmp = await dataStorage.get("test");
    // 如果键不存在,返回值为 undefined!
    if(!tmp) return;
    var version = tmp.version;
    // 更新内容
    await dataStorage.set("test", "test2");
    // 获取备份(返回值同 get 方法)
    var result = await dataStorage.getVersion("test", version);
    // 如果备份不存在,返回指为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键的设置前备份内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键无设置前备份内容!");
    }


    // 获取备份的数据
    tmp = await dataStorage.get("test");
    // 如果键不存在,返回值为 undefined!
    if(!tmp) return;
    version = tmp.version;
    // 删除内容
    await dataStorage.remove("test");
    // 获取备份(返回值同 get 方法)
    result = await dataStorage.getVersion("test", version);
    // 如果备份不存在,返回指为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键的删除前备份内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键无删除前备份内容!");
    }


    // 当备份不存在时,(注:备份索引为无意义内容!)返回 undefine
    // 获取备份(返回值同 get 方法)
    result = await dataStorage.getVersion("test", "test");
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键的删除前备份内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键无删除前备份内容!");
    }
}();

key: string

返回存储库名称

示例:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
var key = dataStorage.key;
console.log(key === "storage");

async list(options: ListPageOptions): QueryList

分页列举数据库的内容,注意加 await!

示例 - 输出所有内容:

var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置初始值
    await dataStorage.set("test1", "test1");
    await dataStorage.set("test2", "test2");
    await dataStorage.set("test3", "test3");
    // 列举内容
    var queryList = await dataStorage.list({
        // 开始的索引/页数(具体未知),一般填 0 即可
        cursor: 0,
        // 分页大小,默认 100,可省略不填
        pageSize: 100
    });
    // 输出内容
    while(true){
        for(let value of queryList.getCurrentPage()){
            // value.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
            console.log(value.key + ": " + value.value);
        }
        // 如果是最后一页,退出循环
        if(queryList.isLastPage) break;
        // 查找下一页
        await queryList.nextPage();
    }
}();

示例 - 查找内容:

var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置初始值
    await dataStorage.set("test1", "test1");
    await dataStorage.set("test2", "test2");
    await dataStorage.set("test3", "test3");
    // 列举内容
    var queryList = await dataStorage.list({
        // 开始的索引/页数(具体未知),一般填 0 即可
        cursor: 0,
        // 分页大小,默认 100,可省略不填
        pageSize: 100
    });
    // 查找内容
    var result;
    while(true){
        for(let value of queryList.getCurrentPage()){
            // 判断内容是否为 test2(内容为 value.value)
            // value.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
            if(value.value === "test2") {
                result = value;
                break;
            }
        }
        // 如果是最后一页,退出循环
        if(queryList.isLastPage) break;
        // 查找下一页
        await queryList.nextPage();
    }
    if(result){
        // 如果查找到内容,则输出内容
        console.log("内容为 test2 的 key: " + result.key);
    }else{
        console.log("未找到内容为 test2 的键!")
    }
}();

async remove(key: string): ResultValue

删除内容,注意加 await!

返回删除前的内容

基础示例:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置初始值
    await dataStorage.set("test", "test");
    // 删除内容
    var result = await dataStorage.remove("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键删除前的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键删除前无内容!");
    }
    // 获取删除后的内容
    result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键删除后的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键删除后的无内容!");
    }
    // 再次删除内容
    var result = await dataStorage.remove("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键再次删除前的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键再次删除前无内容!");
    }
}();

asnyc set(key: string, value: JSONValue): void

设置内容,注意加 await!

基础示例:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function(){
    // 设置初始值
    await dataStorage.set("test", "test1");
    // 获取设置前的内容
    var result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键设置前的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键设置前的无内容!");
    }
    // 设置内容
    await dataStorage.set("test", "test2");
    // 获取设置后的内容
    result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if(result){
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键设置后的内容为:" + result.value);
    }else{
        console.log("存储库 storage 的 test 键设置后的无内容!");
    }
}();

async update(key: string, handler: (prevValue: ResultValue) => JSONValue): void

更新内容,注意加 await!

基础示例:

// 获取存储库
var dataStorage = storage.getDataStorage("storage");
!async function () {
    // 设置初始值
    await dataStorage.set("test", 0);
    // 获取设置前的内容
    var result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if (result) {
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键设置前的内容为:" + result.value);
    } else {
        console.log("存储库 storage 的 test 键设置前的无内容!");
    }
    // 更新内容
    await dataStorage.update("test", (prevValue) => {
        // 如果没有原来的内容,则初始化内容(此处初始化为 0)
        // 注:原来没有内容时,prevValue 为 undefined;!prevValue 在这里永远不会触发,但是在实际情况下可能会触发
        if (!prevValue) {
            console.log("存储库 storage 的 test 键更新前的无内容!");
            return 0;
        }
        console.log("存储库 storage 的 test 键更新前的内容为:" + prevValue.value);
        // 如果不更新内容,请返回 prevValue.value(实际上是更新成相同值)
        // 注:prevValue.value === 1 在这里永远不会触发
        if (prevValue.value === 1) return prevValue.value;
        // 返回更新的内容(此处更新为原来的内容加 1)
        return prevValue.value + 1;
    });
    // 获取设置后的内容
    result = await dataStorage.get("test");
    // 如果内容不存在,返回值为 undefined!
    if (result) {
        // 如果存在,result.value 为内容(实际内容可能为字符串、数字、布尔值、数组、对象)
        console.log("存储库 storage 的 test 键设置后的内容为:" + result.value);
    } else {
        console.log("存储库 storage 的 test 键设置后的无内容!");
    }
}();

results matching ""

    No results matching ""